﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;
using System.Data;
using vudu.EnlaceDatos.SqlServer;
using System.Data.SqlClient;

namespace vudu.PaginasWeb.G5Profesor
{
    public partial class ModificarProfesor : System.Web.UI.Page
    {


        private Escuela _miEscuela;
        private SqlServerProfesor _miConsulta = new SqlServerProfesor();
        List<Profesor> _profe = new List<Profesor>();
        
        
        
        
        protected void Page_Load(object sender, EventArgs e)
        {
 
           inicioSesion();

            if(!IsPostBack)
            {
                
                
                ocultarElementos();
                

                if (pruebaConexion())
                {
                    
                    tablaProfesores.DataSource = cargarTabla();
                    tablaProfesores.DataBind();
                    
                }

            }

        }

        protected bool pruebaConexion()
        {
            Conexion miConexion = new Conexion();
            bool error = true;
            try
            {
                miConexion.AbrirConexionBd();
                miConexion.CerrarConexionBd();
            }
            catch (Exception)
            {
                avisoError(1);
                error = false;
            }

            return error;
        }

        protected void avisoError(int opcion)
        {
            switch(opcion)
            {
                case 1:
                    LabelError.Text = "Error en Conexión con Base de Datos";
                    break;
                case 2:
                    LabelError.Text = "Debe Seleccionar un Profesor";
                    break;               
            }

            LabelError.Visible = true;
            LabelError.ForeColor = System.Drawing.Color.Red;
        }

        protected void ocultarElementos()
        {
            LabelError.Visible = false;
        }

        public Escuela ConsultarEscuela(int id_escuela)
        {
            Conexion conex = new Conexion();
            Escuela miEscuela = new Escuela();
            SqlCommand comando = new SqlCommand();
            comando.CommandText = "SELECT * FROM Escuela WHERE id_Escuela = " + id_escuela.ToString();
            comando.CommandTimeout = 10;
            comando.Connection = conex.ObjetoConexion();

            try
            {
                conex.AbrirConexionBd();
                SqlDataReader reader = comando.ExecuteReader();

                if (reader.Read())
                {
                    miEscuela = new Escuela();
                    miEscuela.IdEscuela = reader.GetInt32(0);
                    miEscuela.NombreEscuela = reader["nombre"].ToString();
                }


                return miEscuela;

            }
            catch (Exception)
            {
                return null;
            }
            finally
            {
                conex.CerrarConexionBd();
            }
        }

        protected void inicioSesion()
        {
            try
            {
                //OBJETO SESSION

                string miRol = (string)Session["rol"];
                if (miRol != "Escuela")
                    Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
                
                _miEscuela = new Escuela();
                _miEscuela = (Escuela)Session["Usuario"];
                nombreEscuela.Text = "Escuela: " + _miEscuela.NombreEscuela;               

            }
            catch (Exception)
            {
                _miEscuela = new Escuela();
                _miEscuela.IdEscuela = 1;
                _miEscuela = ConsultarEscuela(_miEscuela.IdEscuela);
                nombreEscuela.Text = _miEscuela.NombreEscuela;
            }
            finally
            {
                //Miga Actual
                MigaActual.Text = "Modificar Profesor";
                
            }

        }

        public DataTable cargarTabla()
        {
            DataTable miTabla = new DataTable();
            

            miTabla.Columns.Add("Cédula", typeof(string));
            miTabla.Columns.Add("Apellido", typeof(string));
            miTabla.Columns.Add("Nombre", typeof(string));
            miTabla.Columns.Add("Fecha Nacimiento", typeof(string));
            miTabla.Columns.Add("Teléfono", typeof(string));
            miTabla.Columns.Add("Email", typeof(string));
            miTabla.Columns.Add("Status", typeof(string));
            miTabla.Columns.Add("Tiempo Laboral", typeof(string));

            _profe = _miConsulta.ConsultarTodosLosProfesoresDeEscuela(_miEscuela.IdEscuela.ToString());

            foreach (Profesor profesor in _profe)
            {

                miTabla.Rows.Add(profesor.Cedula, profesor.Apellido, profesor.Nombre, profesor.FechaNacimiento, profesor.Telefono, profesor.Email, profesor.Estatus, profesor.TiempoLaboral);
            }

            return miTabla;
        }

        protected void BotonModificar_Click(object sender, EventArgs e)
        {
            if (tablaProfesores.SelectedIndex > -1)
            {            
                                 
                _profe = new List<Profesor>();
                _profe = _miConsulta.ConsultarTodosLosProfesoresDeEscuela(_miEscuela.IdEscuela.ToString());                
                Session["aModificar"] = _profe.ElementAt(tablaProfesores.SelectedIndex);
                Response.Redirect("ModificarMiProfesor.aspx"); 

            }
            else
            {
                avisoError(2);
            }
        }

        protected void BotonRegresar_Click(object sender, EventArgs e)
        {            
                Response.Redirect("../Home/HomeEscuela.aspx");            
        }

    }
}